﻿using BW.WMS.CodeEnum;
using BW.WMS.Model;
using BW.WMS.StockControl_GJH.Dto.Input;
using BW.WMS.StockControl_GJH.Dto.Output;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;

namespace BW.WMS.StockControl_GJH
{
    public interface IAllotAppService:IApplicationService
    {
        /// <summary>
        /// 获取库存调拨单
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<ApiPaging<InventoryTransfer>> GetAllot(AllotInput input);
        /// <summary>
        /// 添加库存调拨单
        /// </summary>
        /// <returns></returns>
        Task<ApiResult<int>> LatestAllot(latestAllotInput input);
        /// <summary>
        /// 删除库存调拨单
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task<ApiResult<int>> DeleteAllot(string Id);

        /// <summary>
        /// 获取库存调拨单查询一条
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task<ApiResult<ShowAllotOutput>> ShowAllot (string Allot);
        /// <summary>
        /// 获取货品
        /// </summary>s
        /// <returns></returns>
        Task<ApiPaging<ItemOutput>> GetItem();

        /// <summary>
        /// 获取仓库
        /// </summary>s
        /// <returns></returns>
        Task<ApiResult<List<GetWareHouseOutput>>> GetWareHouse();

        /// <summary>
        /// 修改库存调拨单
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<ApiResult<int>> UpdateAllot (UpdateAllotInput input);


        /// <summary>
        /// 通过仓库库位获取商品
        /// </summary>
        /// <param name="warehouseid"></param>
        /// <param name="librarylocationid"></param>
        /// <returns></returns>
        Task<ApiPaging<ItemsOutput>> Getitems(GetitemsInput input);


        /// <summary>
        /// 审批调拨
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<ApiResult<int>> Approve(ApproveInput input);





    }
}
